package net.sahv.bdyz.controller.admin;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;

import net.sahv.bdyz.model.FabricFilter;
import net.sahv.bdyz.model.FabricfilterPatternprint;
import net.sahv.bdyz.model.PatternPrint;
import net.sahv.bdyz.service.FabricFilterService;
import net.sahv.bdyz.service.FabricfilterPatternprintService;
import net.sahv.bdyz.service.PatternPrintService;
import net.sahv.bdyz.util.PagingUtil;

/** 
* @author  作者 : 周晓娜
* @date 创建时间：2016年8月6日 下午4:48:00 
* @version 1.0 
* @see  
*/
@Controller
@RequestMapping(value = "admin/patternPrints")
public class PatternPringController {
	@Autowired
	private PatternPrintService patternPrintService;
	@Autowired
	private FabricFilterService fabricFilterService;
	@Autowired
	private FabricfilterPatternprintService fabricfilterPatternprintService;
	
	/**
	 * 列表页面
	* @author  作者 : 周晓娜
	* @modify 张天敏
	* @date 创建时间：2016年8月6日 下午4:52:14
	* @param
	* @parameter
	* @return
	 */
	@RequestMapping(value = "/patternPrintsList",method=RequestMethod.GET)
	public String patternPrintsList() {
		return "admin/patternPrints/patternPrintsList";
	}
	
	/**
	 * 列表
	* @author  作者 : 周晓娜
	* @modify 张天敏
	* @date 创建时间：2016年8月6日 下午4:37:47
	* @param
	* @parameter
	* @return
	 */
	@ResponseBody
	@RequestMapping(value = "patternPrintsList", method = RequestMethod.POST)
	public JSON patternPrintsList(PagingUtil pagingUtil, HttpServletRequest request, Model model) {
		
		String sortField=" ORDER BY fp.`FP_CREATE_TIME` DESC ";
		String where=" WHERE 1=1 AND pp.`PP_IS_DELETE`=0 ";
		
		String FF_NAME=request.getParameter("FF_NAME");
		
		if(FF_NAME!=null&&!FF_NAME.trim().equals("")){
			where+=" AND ff.`FF_NAME` LIKE '%"+FF_NAME+"%' ";
		}
		
		Map<String, Object> param = new HashMap<String, Object>();
		param.put("start", pagingUtil.getiDisplayStart());
		param.put("length", pagingUtil.getiDisplayLength());
		param.put("where", where);
		param.put("sortField", sortField);
		//花型加工工艺列表
		List<PatternPrint> patternPrintsList = patternPrintService.patternPrintsList(param);
		// 统计信息的总条数
		int patternPrintsListCount=patternPrintService.patternPrintsListCount(where);

		Map<String, Object> map = new HashMap<String, Object>();
		map.put("aaData", patternPrintsList);
		// 查出来总共有多少条记录
		map.put("iTotalRecords", patternPrintsListCount);
		map.put("iTotalDisplayRecords", patternPrintsListCount);
		map.put("sEcho", pagingUtil.getsEcho());

		return (JSON) JSON.toJSON(map);
	}
	
	/**
	 * 添加页面
	* @author  作者 : 周晓娜
	* @modify 张天敏
	* @date 创建时间：2016年8月6日 下午4:52:22
	* @param
	* @parameter
	* @return
	 */
	@RequestMapping(value = "/addPatternPrints",method=RequestMethod.GET)
	public String addPatternPrints(Model model) {
		//查找成分，只查找未添加满的元素，默认每个元素关联三个子元素,一旦达到关联3个子元素则不再继续显示
		List<FabricFilter> fabricFilterList=fabricFilterService.selectByFfNotFull();
		model.addAttribute("fabricFilterList", fabricFilterList);
		return "admin/patternPrints/addPatternPrints";
	}
	
	/**
	 * 添加
	* @author  作者 : 周晓娜
	* @modify 张天敏
	* @date 创建时间：2016年8月8日 上午10:26:57
	* @param
	* @parameter
	* @return
	 */
	@ResponseBody
	@RequestMapping(value = "/addPatternPrints", method = RequestMethod.POST)
	public ApiResult addPatternPrints(Integer ffId,Integer ppId) {
		ApiResult result = new ApiResult();
		FabricfilterPatternprint fabricfilterPatternprint=new FabricfilterPatternprint();
		fabricfilterPatternprint.setFfId(ffId);
		fabricfilterPatternprint.setPpId(ppId);
		fabricfilterPatternprint.setFpCreateTime(new Date());
		fabricfilterPatternprint.setFpIsDelete(0);
		int flag=fabricfilterPatternprintService.insert(fabricfilterPatternprint);
		if (flag == 1) {
			result.msg.status = 0;
			result.msg.desc = "添加成功！";
		} else {
			result.msg.status = 1;
			result.msg.desc = "添加失败！";
		}
		return result;
	}
	
	/**
	 * 编辑页面
	* @author  作者 : 周晓娜
	* @modify 张天敏
	* @date 创建时间：2016年8月8日 上午9:24:22
	* @param
	* @parameter
	* @return
	 */
	@RequestMapping(value="/updatePatternPrints",method = RequestMethod.GET)
	public String updatePatternPrints(Model model,Integer id){
		PatternPrint dSingleImage = patternPrintService.selectByPrimaryKey(id);
		model.addAttribute("dSingleImage", dSingleImage);
		return "admin/patternPrints/updatePatternPrints";
	}	
	
	/**
	 * 修改
	* @author  作者 : 周晓娜
	* @modify 张天敏
	* @date 创建时间：2016年8月8日 上午10:27:04
	* @param
	* @parameter
	* @return
	 */
	@ResponseBody
	@RequestMapping(value = "/updatePatternPrints", method = RequestMethod.POST)
	public ApiResult updatePatternPrints(PatternPrint patternPrint) {
		ApiResult result = new ApiResult();
		PatternPrint list = patternPrintService.selectByPrimaryKey(patternPrint.getPpId());//根据ID查询数据
		list.setPpName(patternPrint.getPpName());//中文名称
		list.setPpNameEn(patternPrint.getPpNameEn());//英文名称
		BigDecimal bd = patternPrint.getPpPrice();//价格
		list.setPpPrice(bd);
		int flag = patternPrintService.updateByPrimaryKey(list);//修改
		if (flag == 1) {
			result.msg.status = 0;
			result.msg.desc = "修改成功！";
		} else {
			result.msg.status = 1;
			result.msg.desc = "修改失败！";
		}
		return result;
	}
	
	/**
	 * 删除
	* @author  作者 : 周晓娜
	* @modify 张天敏
	* @date 创建时间：2016年8月8日 上午10:26:48
	* @param
	* @parameter
	* @return
	 */
	@ResponseBody
	@RequestMapping(value = "/deletePatternPrints", method = RequestMethod.POST)
	public ApiResult deletePatternPrints(Integer[] id){
		ApiResult result=new ApiResult();
		int flag=0;
		for(Integer i:id){
			//flag=patternPrintService.deleteByPrimaryKey(i);
			flag=fabricfilterPatternprintService.deleteByPrimaryKey(i);
			if(flag==0){
				result.msg.status=1;
				result.msg.desc="删除失败！";
			}
		}
		if(flag==1){
			result.msg.status=0;
			result.msg.desc="删除成功！";
		}
		return result;
	}
	
	/**
	 * 查找未被关联的子集元素
	 * @author 张天敏
	 * @date 日期：2016年10月6日 时间：下午2:56:31
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value="/selectUnchoicePatternPrints",method=RequestMethod.POST)
	public ApiResult selectUnchoicePatternPrints(Integer id){
		ApiResult result=new ApiResult();
		List<PatternPrint> unchoicePatternPrintsList=patternPrintService.selectUnchoicePatternPrints(id);
		if(unchoicePatternPrintsList!=null&&unchoicePatternPrintsList.size()>0){
			result.msg.status=0;
			result.msg.desc="查询成功！";
			result.data.put("unchoicePatternPrintsList", unchoicePatternPrintsList);
		}else{
			result.msg.status=1;
			result.msg.desc="查询不存在！";
		}
		return result;
	}
	
}
